package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.domain.BusinessAnalysis;
import com.ruoyi.system.vo.AnalysisVo;
import com.ruoyi.system.vo.TranslateVo;
import com.ruoyi.system.vo.ZipFileVo;

/**
 * 文件解析Service接口
 * 
 * @author ruoyi
 * @date 2024-09-18
 */
public interface IBusinessAnalysisService 
{
    /**
     * 查询文件解析
     * 
     * @param analysisId 文件解析主键
     * @return 文件解析
     */
    public BusinessAnalysis selectBusinessAnalysisByAnalysisId(Long analysisId);

    /**
     * 查询文件解析列表
     * 
     * @param vo 文件解析
     * @return 文件解析集合
     */
    public List<BusinessAnalysis> selectBusinessAnalysisList(TranslateVo vo);

    /**
     * 新增文件解析
     * 
     * @param businessAnalysis 文件解析
     * @return 结果
     */
    public int insertBusinessAnalysis(BusinessAnalysis businessAnalysis);

    /**
     * 压缩文件
     * @param zipFileVo
     * @return
     */
    public AjaxResult zipFile(ZipFileVo zipFileVo) throws Exception;

    /**
     * 解析文件
     * @param analysisVo
     * @return
     * @throws Exception
     */
    public AjaxResult analysis(AnalysisVo analysisVo ) throws Exception;

    /**
     * 拍照大师解析
     * @param analysisVo
     * @return
     * @throws Exception
     */
    AjaxResult photoAnalysis(AnalysisVo analysisVo ) throws Exception;



    /**
     * 翻译文件
     * @param translateVo
     * @return
     * @throws Exception
     */
    public AjaxResult translate(TranslateVo translateVo ) throws Exception;

    /**
     * 修改文件解析
     * 
     * @param businessAnalysis 文件解析
     * @return 结果
     */
    public int updateBusinessAnalysis(BusinessAnalysis businessAnalysis);

    /**
     * 批量删除文件解析
     * 
     * @param analysisIds 需要删除的文件解析主键集合
     * @return 结果
     */
    public int deleteBusinessAnalysisByAnalysisIds(String analysisIds);

    /**
     * 删除文件解析信息
     * 
     * @param analysisId 文件解析主键
     * @return 结果
     */
    public int deleteBusinessAnalysisByAnalysisId(Long analysisId);

    /**
     * 导出
     * @param vo
     * @return
     * @throws Exception
     */
    AjaxResult fileOutPut(TranslateVo vo) throws Exception;

    /**
     * 拍照大师导出
     * @param vo
     * @return
     * @throws Exception
     */
    AjaxResult photoFileOutPut(TranslateVo vo) throws Exception;


    /**
     * 删除文件
     * @param path
     * @param type 1 图片 2 视频 3 文档
     * @return
     * @throws Exception
     */
    AjaxResult delFile(String path ,Integer type) throws Exception;

    /**
     * 文件优化
     * @param path
     * @return
     */
    AjaxResult fileOptimization(String path,String fileCatagory );

    /**
     * 外国人质检文件夹导出
     * @param vo
     * @return
     * @throws Exception
     */
     AjaxResult folderOutPut(TranslateVo vo) throws Exception;
}
